<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 'use strict'

        // // 1. 必须得用var声明变量
        // a = 12;
        // console.log(a);

        // 2. 函数中的this
        // 'use strict'
        // function fn(){
        //     console.log(this); //undefined
        // }

        // fn();

        // 3. eval();  - 执行一段字符串 用js方式执行
        // eval 函数内部作为单独的作用域，只对eval内部有效

        // 'use strict'
        // eval('var a= 12; alert(a)');
        // console.log(a);


        // 4. 对象上不能用重复属性
        // 'use strict'
        // var obj = {
        //     name:"laowang",
        //     name:"xiaoli"
        // }

        // console.log(obj);

        // 5. 函数 - 传参数 不能重复
        // 'use strict'

        // function fn(a,a){
        //     console.log(a); //Uncaught SyntaxError: Duplicate parameter name not allowed in this context 
        // }

        // fn(1,2);

        // 6. 有些关键字 被内定了，你不能用！。

        // 'use strict'

        // var public = 123;

        // console.log(implements); //Uncaught SyntaxError: Unexpected strict mode reserved word
    
        
        // 7. function中this指向，使用call或apply 不传第一个参数

        // 'use strict'

        // function fn(){
        //     console.log(this);
        // }

        // fn.call('abc')
        // fn.apply()

    </script>
</body>
</html>